package com.sh.inaterviewe;

import java.util.HashMap;

public class FinalizeExample {
    @Override
    protected void finalize() throws Throwable {
        super.finalize(); // 调用父类的finalize方法
        System.out.println("finalize() 被调用了，对象即将被回收！");
    }

    public static void main(String[] args) {
        FinalizeExample obj = new FinalizeExample();
        obj = null; // 使对象不可达，让垃圾回收器可以回收它

        // 手动触发垃圾回收（不保证一定会执行finalize）
        System.out.println("开始触发垃圾回收...");
        System.gc();

        // 等待一段时间，确保finalize有足够的时间执行
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("程序结束！");
    }
}